Generally speaking a computer is a general-purpose machine in view of its ability to process information in accordance with a designed processing program. Thus, there is no problem in instructing the machine to adopt the procedure for the specific task which it is desired to entrust to it at any given moment, and it is equally easy to instruct it immediately afterwards to switch to a new procedure so that it can carry out a new task which may be radically different from the preceding one. Admittedly, the second assertion must be qualified in that, because a program or operating procedure has to be fed in, the machine is only able to undertake rigidly predetermined processing operations from which there is no room for departure. However, even with this limitation, the range of functions open to computers is still enormous and extends to practically all economic, industrial, technical, political and social activities.
In particular applications, for example in the case of an airborne navigation system, the functions required of them are fairly well delimited and defined, and it is therefore sufficient to have a specialized numerical calculator, that is to say one with a more restricted performance and one which consequently is of average or low versatility. The versatility of a computer depends on various factors and in particular on the speed of processing, on the capacity of its storage means, on the maximum possible number of simultaneous instructions and on the computer code selected; it enables equipment of this type to be defined from the performance point of view.
Thus, digital computers are designed to be able to carry out a wide diversity of tasks. To this end, it is necessary to reduce each of the tasks to a series of elementary basic operations. These basic operations are described by programs which, depending on the way in which the machine is designed, may be recorded either in the general store (which is the case with sub-programs) or in a back-up store (which is the case with micro-programming). In the first case the general store must carry out all the basic instructions. In the second case the general store is used only to carry out more general instructions, with the micro-programming store looking after elementary operations.
The advantages of such a technique are numerous; thus if the versatility of the computer can be increased by altering the configuration of the micro-programming back-up store, the operating speed is increased and it is possible to work with multi-processors, and so on.
These advantages are mainly the result of the fact that the store, which in a conventional computer contains the programs, the sub-programs, the data, the results, and the information required to monitor and supervise the machine, has been divided into two parts, i.e. the micro-programming back-up store and the general store.
Nevertheless, it may be pointed out that, in order to produce a general-purpose computer, it is necessary to make the processing circuits as universal as possible, with the consequence that a very large number of instructions has to be stored. This means that such a computer contains a file memory for storing information, which is expensive. For simple applications, where the range of functions is limited, such equipment is generally too large, in particular with respect to the high capacity of its file memory.
Moreover, finding the failures of the computer is difficult to carry out in real time, inasmuch as checking all the digits in the memory devices calls for a special and relatively lengthy test.